package cn.getech.data.development.model.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 作业流菜单树
 * </p>
 *
 * @author hujz
 * @since 2020-04-13
 */
@Data
@ApiModel
public class WorkMenuDto implements Serializable {

    private static final long serialVersionUID = 1L;
    private Long id;

    /**
     * 工程id
     */
    private Integer procId;

    /**
     * 根菜单id:0
     */
    private Long parentId;

    /**
     * 作业流id
     */
    private Long workFlowId;

    /**
     * 作业流类型。0：根目录 1：作业流血缘管理文件夹 2：数据开发   3：作业流文件夹  4：作业流血缘文件夹  5：子目录
     */
    @ApiModelProperty("作业流类型。0：根目录 1：作业流血缘管理文件夹 2：数据开发   3：作业流文件夹  4：作业流血缘文件夹  5：子目录")
    private Integer workType;

    /**
     * 根目录id
     */
    private Long rootId;

    /**
     * 文件夹名字
     */
    @ApiModelProperty("文件夹名字")
    private String name;

    /**
     * 文件夹描述
     */
    private String descName;

    /**
     * 文件夹图标
     */
    private String icon;

    /**
     * 排序
     */
    @ApiModelProperty("排序")
    private Integer orderNum;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /***
     * 对应的子信息
     */
    @ApiModelProperty("对应的子信息")
    private List<?> children;


    /***
     * 如果是1：则是节点（没有下级结构） 0：目录菜单  2:则是任务流（没有下级结构）
     */
    private Integer workflowType = 0;


    /**
     * 节点任务类型 1：数据同步 2：job任务 4：输出任务  6：shell脚本
     */
    private Integer typeId;

    private Integer jobId;
    private Integer olderJobId;

    /**
     * 创建人
     */
    private Integer createPer;

    private String createPerName;

    /**
     * 依赖使用个数
     */
    private Integer layUsedCount = 0;

    /**
     * 调度设置_类型  0不重复 1重复
     */
    private Integer scheduleType = 0;


    /**
     * 如果为任务节点，看是否配置过对应的节点配置。如果没有配置过，则不能进行依赖配置
     */
    private Integer isConfig = 0;

    /***
     * 是否保存过对应的工作流  0：未保存作业流  1：保存过作业流
     */
    private Integer isSaveLinked = 0;


    //shell脚本才需要
    /**
     * 服务器地址
     */
    @ApiModelProperty(value = "服务器地址")
    private String hostUrl;
    /**
     * 端口
     */
    @ApiModelProperty(value = "端口")
    private Integer port;


    /**
     * 用户名
     */
    @ApiModelProperty(value = "用户名")
    private String username;

    /**
     * 密码
     */
    @ApiModelProperty(value = "密码")
    private String password;


    /**
     * 是否是虚拟的任务节点  1：是虚拟的节点  0：正常的节点
     */
    private Integer isVirCopy = 0;


    /**
     * 是否显示  0：显示  1：不显示
     */
    private Integer isDisplay = 0;

    /**
     * 是否存在任务
     */
    private Boolean isExist = false;

}
